﻿using System.Windows.Media.Media3D;
using HelixToolkit.Wpf;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Controls;

namespace DriveBeamEditor.Wpf
{
    public struct ViewInfo
    {
        #region Properties

        public HelixViewport3D View { get; private set; }

        public GridLines Grid { get; private set; }

        public PointsVisual3D RefPoints { get; private set; }

        public PointsVisual3D Nodes { get; private set; }

        public LinesVisual3D Beams { get; private set; }

        public LinesVisual3D Ghosts { get; private set; }

        public ModelVisual3D Triangles { get; private set; }

        public ModelVisual3D Model { get; private set; }

        public double SnapValue { get; private set; }

        #endregion

        #region CTORs

        public ViewInfo(
            HelixViewport3D view,
            GridLines grid,
            PointsVisual3D refPoints,
            PointsVisual3D nodes,
            LinesVisual3D beams,
            ModelVisual3D triangles,
            ModelVisual3D model,
            LinesVisual3D ghosts,
            double snapValue
        )
            : this()
        {
            View = view;
            Grid = grid;
            RefPoints = refPoints;
            Nodes = nodes;
            Beams = beams;
            Triangles = triangles;
            Model = model;
            Ghosts = ghosts;
            SnapValue = snapValue;
        }

        #endregion

        #region Methods

        public override string ToString()
        {
            return View.Name;
        }

        #endregion
    }
}
